using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;

namespace Redis_demo.Interceptors;

public class Userinterceptor : IAsyncActionFilter
{
    public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
    {
        // 在执行操作方法之前的逻辑

        // 判断登录用户是否在数据库中存在
        // 这里可以根据具体的业务逻辑进行判断，比如查询数据库，验证用户是否存在

        // 如果用户不存在，可以返回相应的错误信息或者进行其他处理
        if (!UserExists())
        {
            context.Result = new NotFoundResult();
            return;
        }

        // 继续执行下一个拦截器或者操作方法
        await next();

        // 在执行操作方法之后的逻辑
    }

    private bool UserExists()
    {
        // 判断用户是否存在的逻辑
        // 可以根据具体的业务需求来实现
        // 返回 true 表示用户存在，返回 false 表示用户不存在
        return false;
    }
}
